
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Nginx 中的负载均衡机制是如何工作的？有哪些负载均衡算法？ - 学习卡片</title>
      <style>
        body { font-family: sans-serif; background-color: #f0f8ff; color: #333; display: flex; flex-direction: column; align-items: center; padding: 50px 20px; }
        .header h1 { font-size: 32px; }
        .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; width: 100%; max-width: 1200px; }
        .card-container { perspective: 1200px; cursor: pointer; height: 250px; }
        .card { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.7s; border-radius: 16px; box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
        .card-container.flipped .card { transform: rotateY(180deg); }
        .card-face { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; flex-direction: column; box-sizing: border-box; border-radius: 16px; background-color: #fff; padding: 24px; }
        .card-back { background-color: #f0fff4; transform: rotateY(180deg); justify-content: space-between; }
        .card-category { font-size: 14px; color: #0052d9; margin-bottom: 8px; font-weight: 500; }
        .card-question { font-size: 20px; font-weight: 500; flex-grow: 1; display: flex; align-items: center; justify-content: center; text-align: center; }
        .card-answer-wrapper { flex-grow: 1; overflow-y: auto; }
        .card-answer { font-size: 15px; line-height: 1.7; }
        .card-footer { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 16px; margin-top: 16px; }
        .card-source { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 12px; margin-top: 12px; }
      </style>
    </head>
    <body>
      <div class="header">
        <h1>Nginx 中的负载均衡机制是如何工作的？有哪些负载均衡算法？ - 学习卡片</h1>
      </div>
      <div class="grid-container">
        
    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">Nginx负载均衡机制的工作原理包含哪三个核心环节？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">Nginx负载均衡的工作原理主要包括三个环节：1. 请求分发：作为反向代理，根据配置的算法将客户端请求分发到后端服务器池。2. 健康检查：检查后端服务器状态，确保请求只发送到健康的服务器。3. 请求路由：根据客户端IP、请求URI等条件决定请求如何被分发。</div>
          </div>
          <div class="card-source">来源: 1. 负载均衡机制的工作原理</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">算法</div>
          <div class="card-question">Nginx默认的负载均衡算法是什么？它适用于何种场景？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">算法</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">Nginx默认的负载均衡算法是轮询（Round Robin）。它将请求依次分发到后端服务器池中的每台服务器，这种算法简单且公平，适用于后端服务器处理能力相似的场景。</div>
          </div>
          <div class="card-source">来源: 2. 常见的负载均衡算法</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">算法</div>
          <div class="card-question">当需要确保来自同一客户端的请求总是被发送到同一台后端服务器时，应该使用哪种负载均衡算法？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">算法</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">应该使用IP哈希（IP Hash）算法。该算法通过计算客户端IP地址的哈希值，能将相同IP的请求始终发送到相同的后端服务器，适用于需要保持会话粘性（session stickiness）的应用场景。</div>
          </div>
          <div class="card-source">来源: 2. 常见的负载均衡算法</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">算法</div>
          <div class="card-question">如果后端服务器的处理能力各不相同，例如有的服务器配置高，有的配置低，应该如何配置Nginx以实现更合理的流量分配？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">算法</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">应该使用加权轮询（Weighted Round Robin）算法。该算法可以为每台后端服务器分配一个权重值（如 weight=3），权重较大的服务器会接收更多的请求，从而适应后端服务器处理能力不同的场景。</div>
          </div>
          <div class="card-source">来源: 2. 常见的负载均衡算法</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">算法</div>
          <div class="card-question">最少连接（Least Connections）算法的设计目标是什么？它在什么情况下特别有效？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">算法</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">最少连接算法的设计目标是将新请求分发到当前活动连接数最少的后端服务器。它在负载不均或某些请求处理时间较长的情况下特别有效，可以帮助更均衡地利用服务器资源。</div>
          </div>
          <div class="card-source">来源: 2. 常见的负载均衡算法</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">配置</div>
          <div class="card-question">在Nginx中如何设置备份服务器？备份服务器在什么条件下会开始接收请求？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">配置</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">可以通过在 server 指令后添加 `backup` 参数来配置备份服务器。备份服务器只有在所有主服务器都不可用时才会接收请求，用于提高系统的高可用性。</div>
          </div>
          <div class="card-source">来源: 3. 其他负载均衡配置</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">文档中提到的哪项健康检查功能是Nginx Plus独有的？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">文档提到，Nginx Plus 提供了内置的主动健康检查功能（通过 `health_check` 指令启用），可以自动处理服务器的故障和恢复。</div>
          </div>
          <div class="card-source">来源: 3. 其他负载均衡配置</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">除了IP Hash算法，Nginx Plus还提供了哪种方式来实现会话粘性？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">Nginx Plus 提供了 `sticky` 模块来实现会话粘性。通过在 upstream 块中添加 `sticky` 指令，可以确保来自同一用户的请求始终被发送到同一台服务器。</div>
          </div>
          <div class="card-source">来源: 3. 其他负载均衡配置</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">算法</div>
          <div class="card-question">加权最少连接（Weighted Least Connections）算法是如何结合另外两种算法的特点的？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">算法</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">该算法结合了“加权”和“最少连接”两种算法的特点。它在选择服务器时，不仅会考虑哪台服务器的当前连接数最少，还会根据为服务器分配的权重值进行综合判断，将请求分发到连接数最少且权重较大的服务器。</div>
          </div>
          <div class="card-source">来源: 2. 常见的负载均衡算法</div>
        </div>
      </div>
    </div>

      </div>
    </body>
    </html>
